package com.chinaisafe.user.entity;

import java.io.Serial;
import com.chinaisafe.user.vo.request.SysMenuReqVO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chinaisafe.base.mybatisplus.entity.BaseEntity;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * SysMenu
 * Description：菜单(资源)实体类
 *
 * @author tby
 * @date  2024-07-11 17:32:41
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("sys_menu")
@Schema(name = "SysMenu", description = "菜单(资源)")
public class SysMenu extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "系统资源模块_id")
    @TableField("sys_module_id")
    private Long sysModuleId;

    @Schema(description = "名称")
    @TableField("title")
    private String title;

    @Schema(description = "所属应用id")
    @TableField("sys_app_id")
    private Long sysAppId;

    @Schema(description = "是否缓存路由")
    @TableField("keep_alive")
    private Boolean keepAlive;

    @Schema(description = "是否为常量路由")
    @TableField("constant")
    private Boolean constant;

    @Schema(description = "编码")
    @TableField("`name`")
    private String name;

    @Schema(description = "父级id")
    @TableField("parent_id")
    private Long parentId;

    @Schema(description = "外部链接")
    @TableField("href")
    private String href;

    @Schema(description = "路由地址")
    @TableField("`path`")
    private String path;

    @Schema(description = "组件")
    @TableField("`component`")
    private String component;

    @Schema(description = "是否外链")
    @TableField("frame")
    private Boolean frame;

    @Schema(description = "菜单类型")
    @TableField("`type`")
    private String type;

    @Schema(description = "显示顺序")
    @TableField("seq")
    private Integer seq;

    @Schema(description = "激活菜单")
    @TableField("active_menu")
    private String activeMenu;

    @Schema(description = "是否显示")
    @TableField("hide_in_menu")
    private Boolean hideInMenu;

    @Schema(description = "是否固定标签页")
    @TableField("fixed_index_in_tab")
    private Boolean fixedIndexInTab;

    @Schema(description = "是否多标签页")
    @TableField("multi_tab")
    private Boolean multiTab;

    @Schema(description = "菜单图标")
    @TableField("icon")
    private String icon;

    @Schema(description = "请求参数")
    @TableField("`query`")
    private String query;

    @Schema(description = "是否启用")
    @TableField("`enable`")
    private Boolean enable;
}
